package com.atguigu.crowd.service;

import com.atguigu.crowd.entity.Admin;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * 尚筹网项目Admin业务类
 *
 * @author wmb
 *
 * @since 2021-1-16
 */
public interface AdminService {
    /**
     * 保存admin
     *
     * @param admin
     */
    void saveAdmin(Admin admin);

    /**
     * 查询所有admin
     *
     * @return
     */
    List<Admin> getAll();

    /**
     * 根据login_account获取admin
     *
     * @param loginAccount
     * @param password
     *
     * @return
     */
    Admin getAdminByUsername(String loginAccount, String password);

    /**
     * 根据keyword分页查询admin
     *
     * @param keyword
     * @param pageNum
     * @param pageSize
     *
     * @return
     */
    PageInfo<Admin> getPageInfo(String keyword, Integer pageNum, Integer pageSize);

    /**
     * 根据adminId删除admin
     *
     * @param adminId
     */
    void remove(Integer adminId);

    /**
     * 根据adminId查询admin
     *
     * @param adminId
     *
     * @return
     */
    Admin getAdminByAdminId(Integer adminId);

    /**
     * 更新admin
     *
     * @param admin
     */
    void update(Admin admin);

    /**
     * 为adminId的用户分配roleIdList用户权限
     *
     * @param adminId
     * @param roleIdList
     */
    void saveAdminRoleRelationship(Integer adminId, List<Integer> roleIdList);

    /**
     * 保存角色-用户关系
     *
     * @param map
     */
    void saveRoleAuthRelationship(Map<String, List<Integer>> map);

    /**
     * 根据用户名获取admin
     *
     * @param username
     *
     * @return
     */
    Admin getAdminByLoginAccount(String username);
}
